/**************************************************************************************
*
*	Copyright (C) 2009 - 2012 Brent Andrew O. Chua - See LICENSE.txt for more info.
*		
*	Filename	-	LightManager.h
*
*	Description -	When rendering, lights will be stored here for further processing.
*
*	Comments	-	
*
*	Modification History:
*			Name			   Date					Description
*			MrCodeSushi	-	02/05/2013	-	Creation of this file
**************************************************************************************/
#ifndef _PSX_LIGHT_MANAGER_H_
#define _PSX_LIGHT_MANAGER_H_

#include "PulseSTD.h"
#include "Array.h"
#include "Light.h"
#include "ComponentLight.h"

namespace Pulse
{
	class LightManager
	{
	public:

		void AddLight( const ComponentLight *pLight ) { m_lights.PushBack( pLight ); }

		const UINT GetNumLights( void ) const { return (UINT)m_lights.GetSize(); }

		const ComponentLight * GetLight( const INDEX_T i ) { return m_lights[i]; }

		void ClearLights( void ) { m_lights.Clear(); }

	private:

		typedef Array<const ComponentLight*> LightList;

		LightList m_lights;

	};

}

#endif /* _PSX_LIGHT_MANAGER_H_ */